package actions;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Map;

import modelo.Tesina;

import org.apache.struts2.interceptor.SessionAware;

import DAO.FactoryDAO;
import DAO.TesinaDAO;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class GuardarCambiosTesis extends ActionSupport implements SessionAware{ 
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String titulo;
	private String autor;
	private String director;
	private String carrera;
	private String resumen;
	private String concluciones;
	private String trabajosFuturos;
	private String trabajosRealizados;
	private String fechaPresentacion;
	
	
	private Map<String, Object> session;
	private Collection <Tesina> collTesis = new ArrayList <Tesina>();

	public Collection<Tesina> getCollTesis() {
		return collTesis;
	}

	public void setCollTesis(Collection<Tesina> collTesis) {
		this.collTesis = collTesis;
	}
	
	
	public String execute() {
		
		Tesina tesina = new Tesina();
		tesina.setTitulo(titulo);
		tesina.setAutor(autor);
		tesina.setDirector(director);
		tesina.setResumen(resumen);
		tesina.setConcluciones(concluciones);
		tesina.setTrabajosRealizados(trabajosRealizados);
		SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy"); 
		Date fecha;
		try {
			fecha = sdf.parse(fechaPresentacion);
			tesina.setFechaPresentacion(fecha);
		} catch (ParseException e) {
			
			e.printStackTrace();
		} 
		tesina.setCarrera(carrera);
		tesina.setTrabajosFuturos(trabajosFuturos);
		
		session=ActionContext.getContext().getSession();
		tesina.setId((Long) session.get("idTesis"));
		
		TesinaDAO tesinaDAO = FactoryDAO.getTesinaDAO();
		tesinaDAO.modificarTesina(tesina);
		collTesis = tesinaDAO.obtenerUltimasTesinas();  
		return "SUCCESS";
	}
	
	public void validate(){
		if (getAutor().equals("") || getCarrera().equals("") || getConcluciones().equals("") || getDirector().equals("") || getFechaPresentacion().equals("")
				|| getResumen().equals("") || getTitulo().equals("") || getTrabajosRealizados().equals("")){
			
			addFieldError("error", "Todos los campos son obligatorios");
			
		}
		
	}

	public Map<String, Object> getSession() {
		return session;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getAutor() {
		return autor;
	}

	public void setAutor(String autor) {
		this.autor = autor;
	}

	public String getDirector() {
		return director;
	}
	
	public void setDirector(String director) {
		this.director = director;
	}

	public String getCarrera() {
		return carrera;
	}
	public void setCarrera(String carrera) {
		this.carrera = carrera;
	}

	public String getResumen() {
		return resumen;
	}

	public void setResumen(String resumen) {
		this.resumen = resumen;
	}

	public String getConcluciones() {
		return concluciones;
	}
	
	public void setConcluciones(String concluciones) {
		this.concluciones = concluciones;
	}

	public String getTrabajosFuturos() {
		return trabajosFuturos;
	}

	public void setTrabajosFuturos(String trabajosFuturos) {
		this.trabajosFuturos = trabajosFuturos;
	}

	public String getTrabajosRealizados() {
		return trabajosRealizados;
	}

	public void setTrabajosRealizados(String trabajosRealizados) {
		this.trabajosRealizados = trabajosRealizados;
	}

	public String getFechaPresentacion() {
		return fechaPresentacion;
	}

	public void setFechaPresentacion(String fechaPresentacion) {
		this.fechaPresentacion = fechaPresentacion;
	}



	@Override
	public void setSession(Map<String, Object> arg0) {
		// TODO Auto-generated method stub
		
	}

}
